return -1;
}
- if ( alloc_new_dom_mem(p, params->memory_kb) ) return -ENOMEM;
+ if ( alloc_new_dom_mem(p, params->memory_kb) )
+ {
+ printk("DOM%d: Not enough memory --- reduce dom0_mem ??\n", dom);
+ return -ENOMEM;
+ }
+
alloc_address = list_entry(p->pg_head.prev, struct pfn_info, list) -
frame_table;
alloc_address <<= PAGE_SHIFT;
#include <xeno/vbd.h>
#include <xeno/slab.h>
-#if 1
+#if 0
#define DPRINTK(_f, _a...) printk( _f , ## _a )
#else
#define DPRINTK(_f, _a...) ((void)0)
static void dump_blockq(u_char key, void *dev_id, struct pt_regs *regs)
{
+ unsigned long flags;
struct task_struct *p;
blk_ring_t *blk_ring ;
+ int i;
printk("Dumping block queue stats: nr_pending = %d (prod=%d,cons=%d)\n",
atomic_read(&nr_pending), pending_prod, pending_cons);
- p = current->next_task;
- do
- {
+ read_lock_irqsave(&tasklist_lock, flags);
+ p = &idle0_task;
+ do {
if ( !is_idle_task(p) )
{
printk("Domain: %d\n", p->domain);
__on_blkdev_list(p));
}
p = p->next_task;
- } while (p != current);
+ }
+ while ( (p = p->next_task) != &idle0_task );
+ read_unlock_irqrestore(&tasklist_lock, flags);
+
+ for ( i = 0; i < MAX_PENDING_REQS; i++ )
+ {
+ printk("Pend%d: dom=%p, id=%08lx, cnt=%d, op=%d, status=%d\n",
+ i, pending_reqs[i].domain, pending_reqs[i].id,
+ atomic_read(&pending_reqs[i].pendcnt),
+ pending_reqs[i].operation, pending_reqs[i].status);
+ }
}
/* Start-of-day initialisation for a new domain. */
cur_disk.info |= XD_FLAG_RO;
cur_disk.capacity = current_capacity(drive);
- cur_disk.domain = 0; /* 'physical' disks belong to domain 0
+ cur_disk.domain = 0; /* 'physical' disks belong to domain 0 */
/* Now copy into relevant part of user-space buffer */
if((ret = copy_to_user(xdi->disks + xdi->count, &cur_disk,